package org.vehicle.dao;

import java.util.List;
import java.util.Map;

import org.vehicle.dao.base.BaseDaoMapper;
import org.vehicle.entity.DataRecordInfo;

public interface DataRecordInfoMapper extends BaseDaoMapper<DataRecordInfo, Long>{
	/**
	 * 通过管理站id及身份证号获取历史记录
	 * @param paramMap
	 * @return
	 */
	DataRecordInfo getDataRecordInfoByOrgIdAndCertificateCode(Map<String, Object> paramMap);
	/**
	 * 获取人员信息列表
	 * @param paramMap
	 * @return
	 */
	List<DataRecordInfo> getDataRecordInfoList(Map<String, Object> paramMap);
	
	/**
	 * 获取人员总数
	 * @param paramMap
	 * @return
	 */
    public Integer getDataRecordInfoCount(Map<String, Object> paramMap);
       
    /**
     * 获取人员告警信息列表
     * @param paramMap
     * @return
     */
    List<DataRecordInfo> getPersonAlertList(Map<String, Object> paramMap);
    
    /**
     * 获取人员告警总数
     * @param paramMap
     * @return
     */
    public Integer getPersonAlertCount(Map<String, Object> paramMap);
    
    /**
     * 获取检查人数
     * @return
     */
    public Integer getCheckPersonCount(Map<String, Object> paramMap);
    
    /**
     * 获取总告警人数
     * @return
     */
    public Integer getAlertCount(Map<String, Object> paramMap);
    
    /**
     * 获取总处理人数
     * @return
     */
    public Integer getDisposeCount(Map<String, Object> paramMap);
    
    /**
     * 获取每个检查站检查的人数和告警数
     * @return
     */
    List<Map<String, Object>> getStatistics();
    
    /**
     * 获取每个检查站当天检查的人数
     * @return
     */
    List<Map<String, Object>> getTodayPersonCount();
    
    /**
     * 通过身份证号及车牌号修改告警id
     * @param dataRecordInfo
     * @return
     */
    public void updateAlertInfoIdByCertificateCode(DataRecordInfo dataRecordInfo);
    
    /**
     * 获取七天内每天的检查人数
     * @return
     */
    List<Map<String, Object>> getSevenDaysPersonCount(Map<String, Object> paramMap);
    
    /**
     * 获取七天内每天的检查车辆数
     * @return
     */
    List<Map<String, Object>> getSevenDaysVehicleLicenseCount(Map<String, Object> paramMap);
    /**
     * 通过身份证号修改历史数据
     * @param dataRecordInfo
     */
    public void updateDataRecordByCertificateCode(Map<String, Object> paramMap);
    /**
     * 通过身份证号删除历史记录
     * @param certificateCode
     */
	public void delDataRecordByCertificateCode(String certificateCode);
}